from __future__ import print_function
import ctypes, sys
class adminPermissionUtils:
    """
    该类用于以管理员权限执行py文件
    python如果获取windows管理员权限（一）
    存在缺陷：UAC限制，无法在IDE中运行
    原文链接： https://blog.csdn.net/qq_17550379/article/details/79006655
    """
    @staticmethod
    def __isAdmin():
        """
        判断是否为管理员权限
        :return:
        """
        try:
            return ctypes.windll.shell32.IsUserAnAdmin()
        except:
            return False
    @staticmethod
    def AdminExecutor(filename):
        """
        以管理员权限执行filename
        :param filename: 待执行py文件
        :return:
        """
        if not adminPermissionUtils.__isAdmin():
            if sys.version_info[0] == 3:
                ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, filename, None, 1)
            else:#in python2.x
                ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(filename), None, 1)
